最近收到粉丝投稿要求我出个画个标准化平均差SMD可视化图的教程,就是下面这样的图,还给我推荐了2篇论文。 相关的论文是: https://www.mdpi.com/2075-4426/11/11/1132/htm https://sci-hub.se/10.1007/s10742-020-00222-8
看了粉丝推荐我的那篇文章,那老外满屏都在秀操作,看得头晕眼花,不过基本上算是看懂了,首先来看看标准化平均差SMD是什么 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7133d0f8cb01482994119a66a1dd012e.png)
这个SMD的图怎么看,下图为例,主要是看协变量之间的平衡程度,我们看绿色的是没有经过调整的时候,各个协变量偏离得很大,但是经过花式操作,偏离得明显减少,特别是红色这个CBPS IPTW,几乎没有什么偏移,很多文章就会说调整了基线资料,有明显可比性。 那么SMD怎么计算呢,以我早产数据为例,假设我要计算早产和没有早产之间年龄(age)的SMD,先算出早产组年龄的平均值和没有早产组年龄的平均值,在算出两组之间的标准差(SD),然后早产组平均值减去非早产组平均值,再除以两组之间的标准差,就是SMD了。这里要注意一下,分类变量和连续变量的计算是不一样的,分类变量中的变量名只是代表一个类别,而不是数字,不能直接拿来加减,要先转成哑变量矩阵,可不是我们平时说的因子哦。 OK,废话不多说,我们现在开始,先导入数据和R包,这里需要两个R包,MatchIt包和cobalt包
library("MatchIt")
library("cobalt")
bc |